Amazon WorkSpacesの自動バックアップについて調べてみました
Amazon WorkSpacesは日本語対応している、AWSフルマネージドのサービスです。 簡単にデスクトップ環境を構築することが可能で、マルチデバイス(Windows/Mac/iPad/Kindle Fire/Androidタブレット等)で使用できます。
今回はAWSのドキュメントにも情報が少ない、WorkSpacesの自動バックアップについて検証しました。
WorkSpacesについての詳細は過去のAWS Black Beltのレポート記事をご参照ください。 Black Belt上で行われたQ&Aも記載されているため、AWSのドキュメントに載っていない情報もあります。
「AWS Black Belt Tech Webinar 2014 - Amazon WorkSpaces」レポート
WorkSpacesの自動バックアップを知る
※注意(2020/7/27 追記) 記事執筆時点ではデータドライブのみが自動スナップショットの対象でしたが、現在はルートボリュームおよびユーザーボリュームの両方で自動スナップショットが作成されます。
WorkSpacesのバックアップについてはAWSのドキュメントに載っています。(2020/7/27 修正)
WorkSpace の復元時に使用する自動スナップショットは、12 時間ごとにスケジュールされます。WorkSpace が正常であれば、ルートボリュームとユーザーボリュームの両方のスナップショットがほぼ同時に作成されます。
Q: ユーザーのデータはどのようにバックアップされますか? >WorkSpace のユーザーボリュームは 12 時間おきにバックアップされます。WorkSpace に障害が発生した場合、AWS はバックアップからそのボリュームを復旧します。
WorkSpace上のC,Dドライブについては、12時間ごとにAmazon S3上にスナップショットでバックアップされています。 自動バックアップはWorkSpaceに障害が発生した場合やWorkSpaceを再構築する際に使用されます。
尚、WorkSpacesの自動バックアップについて留意しておきたい点があります。
自動スナップショットではCドライブはバックアップされない現在はルートボリューム(Cドライブ)も自動スナップショットの取得対象(2020/7/27 修正)- 任意でWorkSpaceのスナップショットは取れない
- WorkSpaceの再構築や障害が発生した場合に自動バックアップから復元されるが、12時間以内に作成されている自動バックアップからのみ復元される(スナップショットを選んで復元したりはできない)
残念ながら現時点ではEC2やRDSのようなスナップショットの運用はできないですね。
自動バックアップの検証設定
自動バックアップの挙動を確認するための設定をしてきます。
今回はWindowsのタスクとWindows PowerShellを使い、毎時59分にテキストファイルを作成、約12時間ごとにWorkSpaceの再構築をすることで、どのタイミングでバックアップされているかを確認します。
尚、WorkSpaceにはデフォルトでWindows PowerShell、Windows PowerShell for AWSがインストールされています。 WorkSpaceにインストールされているWindows PowerShellのバージョンは3.0でした。
PS > $PSVersionTable Name Value ---- ----- PSVersion 3.0 WSManStackVersion 3.0 SerializationVersion 1.1.0.1 CLRVersion 4.0.30319.34209 BuildVersion 6.2.9200.16481 PSCompatibleVersions {1.0, 2.0, 3.0} PSRemotingProtocolVersion 2.2
Windows PowerShellでテキストを作成します。スクリプト名は「backuptest.ps1」としました。 ファイル名には年月日と時刻を指定をします。
$filename = Get-Date -Format "yyyyMMdd-HHmm" "" > D:\temp\BackupTest\$filename.txt
Windows PowerShellはデフォルトではスクリプトの実行が禁止されていますので、 「Set-ExecutionPolicy」コマンド管理者権限でポリシーを変更しています。 これでタスクで実行するスクリプトの用意ができましたので、タスクへ登録します。
タスク設定
- プログラム/スクリプト %SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe
- 引数の追加 -Command .\backuptest.ps1
- 開始 d:\temp
タスクに登録したスクリプトが正常に動作するか確認し、問題ありませんでした。
結果
3月19日(木) 12時00分~3月22日(日) 00時00分 までの自動バックアップの挙動です。
■3月20日(金) 0時~1時までの間に確認
再構築後(再構築1回目) 3月19日(木) 19時59分までのデータが残っており、20時59分のデータは復元されていません。 上記から3月19日(木) 19時59分~20時58分の間に自動バックアップされ、その自動バックアップから復元されたことが確認できます
■3月20日(金) 12時~13時までの間に確認
再構築後(再構築2回目) 3月19日(木) 23時59分までのデータが残っており、3月20日(金) 0時59分のデータは復元されていません。 上記から3月19日(木) 23時59分~3月20日(金) 0時58分の間に自動バックアップされ、その自動バックアップから復元されたことが確認できます
■3月21日(土) 0時~1時までの間に確認
再構築後(再構築3回目) 3月20日(金) 11時59分までのデータが残っており、12時59分のデータは復元されていません。 上記から3月20日(金) 11時59分~12時58分の間に自動バックアップされ、その自動バックアップから復元されたことが確認できます
■3月21日(土) 12時~13時までの間に確認
再構築後(再構築4回目) 3月21日(土) 11時59分までのデータが残っており、再構築前と同様のデータとなりました。 再構築直前に自動バックアップされていたと思われます。
■3月22日(日) 0時~1時までの間に確認
再構築後(再構築5回目) 3月21日(土) 23時59分までのデータが残っており、再構築前と同様のデータとなりました。 再構築直前に自動バックアップされていたと思われます。
まとめ
3月19日(木) 12時00分~3月22日(日) 00時00分 までの自動バックアップの結果を図でまとめました。(クリックで拡大します)
- 12時間以内のデータに関しては消える可能性が確認できた
- 自動バックアップおよびWorkSpace再構築のタイミングにより、以下データが消えてしまった時間帯があった
- 3月19日(木) 20時59分~3月19日(木) 23時59分
- 3月20日(金) 12時59分~3月20日(金) 23時59分
- 自動バックアップおよびWorkSpace再構築のタイミングにより、以下データが消えてしまった時間帯があった
- 再構築直前までのデータに復元する可能性があることも確認できた
- 自動バックアップは決まった時間に行われていないことが判明した
12時間以内に保存したDドライブのファイルは自動バックアップ対象外となりうる可能性があるため、WorkDocsの同期機能を使用する、(接続されていれば)ファイルサーバに保存する等、特にWorkSpaceの再構築前には任意のバックアップが必要と実感しました。 WorkSpacesユーザーは50GBまで無料でWorkDocsを利用できるため、重要なファイルはWorkDocsと同期しておくことをオススメします。